<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      /* 
        v-enter-from：进入动画的起始状态。
        在元素插入之前添加，在元素插入完成后的下一帧移除。

        v-enter-active：进入动画的生效状态。
        应用于整个进入动画阶段。在元素被插入之前添加，在过渡或动画完成之后移除。
        这个 class 可以被用来定义进入动画的持续时间、延迟与速度曲线类型。

        v-enter-to：进入动画的结束状态。
        在元素插入完成后的下一帧被添加 (也就是 v-enter-from 被移除的同时)，
        在过渡或动画完成之后移除。

        v-leave-from：离开动画的起始状态。
        在离开过渡效果被触发时立即添加，在一帧后被移除。

        v-leave-active：离开动画的生效状态。
        应用于整个离开动画阶段。在离开过渡效果被触发时立即添加，在过渡或动画完成之后移除。
        这个 class 可以被用来定义离开动画的持续时间、延迟与速度曲线类型。

        v-leave-to：离开动画的结束状态。
        在一个离开动画被触发后的下一帧被添加 (也就是 v-leave-from 被移除的同时)，
        在过渡或动画完成之后移除
      */
      /* .fade-enter-active,
      .fade-leave-active {
        transition: opacity 0.5s ease;
      }

      .fade-enter-from,
      .fade-leave-to {
        opacity: 0;
      } */

      .fade-enter-active,
      .fade-leave-active {
        transition: all 1s ease;
      }
      .fade-enter-from {
        opacity: 0;
        transform: translateX(30px);
      }
      .fade-leave-to {
        opacity: 0;
        transform: translateX(-30px);
      }
    </style>
  </head>
  <body>
    <div id="app">
      <h2>过渡</h2>
      <button @click="show = !show">btn</button>
      <!-- transition主要就是给那些需要通过v-if来控制的元素添加的 -->
      <transition name="fade">
        <p v-if="show">hello vue!</p>
      </transition>
    </div>

    <script src="./lib/vue3.js"></script>
    <script>
      const { createApp } = Vue;

      const app = createApp({
        data() {
          return {
            show: true,
          };
        },
      });

      app.mount("#app");
    </script>
  </body>
</html>
